0 UD$="N":PRINT"[147] *** DBASE64.V1 BY R.JACOBS 2/88 **" 5 PRINT"ARE YOU USING A DISK DRIVE (Y/N)":INPUTUD$ 130 WQ$="CLOSE THE FILE NOW? Y[146] CLOSE IT F1[146] NO" 140 CP=2:IFUD$="Y"THEN OPEN15,8,15:PRINT#15,"UJ" 150 IFCP=1ANDUD$="Y"THENPRINT#15,"UI-" 160 M2$=" [146]C [146]D [146]G [146]H [146]I [146]M [146]P [146]R [146]S [146]X [146]F1 " 162 M3$=" [146]@@@ QUITS [146]":X1=1:X2=1:C6=0:C1=0:C4=0:C7=0 170 M1$="REC. NO.:[146]":M4$=" [146]G [146]P [146]H [146]X [146]F1 [146]" 180 PRINT"[147]  DBASE64.V1 [146] BY DICK JACOBS[146]" 190 PRINT" 1[146]-CREATE NEW FILE 11[146]-BYTES FREE" 200 PRINT" 2[146]-ADD MORE RECORDS 12[146]-RENAME FIELDS" 210 PRINT" 3[146]-SORT RECORDS 13[146]-CLOSE FILE " 220 PRINT" 4[146]-EDIT RECORDS 14[146]-INDEX FILE" 230 PRINT" 5[146]-SAVE FILE 15[146]-DISK DIRECTORY" 240 PRINT" 6[146]-LOAD FILE 16[146]-DISK STATUS" 250 PRINT" 7[146]-BREAK PROGRAM 17[146]-SET COLORS" 260 PRINT" 8[146]-PRINT RECORDS 18[146]-DISK COMMANDS" 270 PRINT" 9[146]-SEARCH & SUM 19[146]-CONFIG SYS" 280 PRINT"10[146]-SUM A FIELD 20[146]-HELP":PRINT 290 IFC1ORC4ORC6THENPRINT" CAUTION: FILE OPEN[146]" 300 IFUD$="Y"THENPRINT"COMMAND CHANNEL OPEN[146]" 305 PRINT"FILE DIMENSIONS: ";LK+1;"[146] X ";KL;"[146]RECS." 310 PRINT"NO. OF RECORDS IN CURRRENT FILE:[146]";B 320 PRINT"ENTER A COMMAND (1-20):[146]";:INPUTC:IFC>25THEN180 330 IF C>16GOTO360 340 ONCGOSUB380,420,2020,1180,810,1800,2010,1410,610,550,1990,2530,2440,3100,2730,2960 350 GOTO180 360 ON C-16GOSUB3520,3650,4500,4700 370 GOTO180 380 IFY=1THENRETURN 390 PRINT"[147]":GOSUB2350:Y=1:B=1:N=LK: GOTO410:REMPRINT"CREATE FILE[146]" 400 PRINT"CREATE HOW MANY FIELDS":INPUTN:N=N-1 410 PRINT"[147]":FORA=0TON:PRINT"ENTER NAME FOR FIELD[146]";A :INPUTFF$(A):NEXTA 420 IF Y<>1THENRETURN 430 GOSUB2320:PRINT"BEGIN ENTERING YOUR RECORDS. TYPE @@@[146]"; 432 PRINT" IN FIRST FIELD TO STOP":A=0 434 IFX2=1THENPRINT"INPUT DEFAULT IS COPY PREVIOUS FIELD[146]" 436 IFX2=2THENPRINT"INPUT DEFAULT IS BLANK ON RETURN[146]" 440 IFB>1THENGOSUB4000:PRINT"PREV. REC":PRINT:FORA=0TON:PRINTF$(A,B-1):NEXTA:A=0 450 PRINT" " 451 PRINT" " 452 PRINT" [145][145][145]":PRINT 453 PRINTM1$;B;M3$:PRINT 457 IFB=>KL-1THENPRINT" ARRAY FULL - SAVE FILE[146]":FORA=1TO12:GOSUB510:NEXTA 460 IF B=>KL-1THENA=0:F$(A,B)="@@@":RETURN 470 IFA>NTHEN500 480 IFX2=1THENF$(A,B)=F$(A,B-1) 481 IFX2=2THENF$(A,B)="." 482 PRINT"";FF$(A);"[146]";:INPUTF$(A,B):IFF$(0,B)="@@@"THENRETURN 490 A=A+1:GOTO470 500 A=0:B=B+1:PRINT:GOSUB510:GOTO450 510 IFCP=1THENPOKEVL,15:POKEVO,245:FORO=1TO20:NEXTO:POKEVL,0:POKEVO,0:RETURN 520 POKE54272+24,15:POKE54272+2,255:POKE54272+3,0:POKE54272+5,9 530 POKE54272+6,0:POKE54272+1,18:POKE54272,104:POKE54272+4,65 540 FORO=1TO50:NEXTO:POKE54272+4,64:FORO=1TO50:NEXTO:RETURN 550 IF Y<>1THENRETURN 560 GOSUB2320:INPUT"SUM FD #";U:IFU>NTHENGOSUB5000:GOTO560 563 T=0:PRINT"[147]":FORD=1TOB-1:T=T+VAL(F$(U,D)) 570 PRINT"RECORD #:";D;" " 580 PRINT"VALUE : ";VAL(F$(U,D));"SUMMATION " 590 PRINT"SUMMATION ";T:NEXT 600 QX$="[157][157] ":GOSUB2410:RETURN 610 IF Y<>1THENRETURN 620 GOSUB2320:INPUT"SEARCH FOR";R$:INPUT"SEARCH FIELD";F1 622 IFF1>NTHENGOSUB5000:GOTO620 630 INPUT"FIELD TO SUM? OR ENTER 99[146] TO BYPASS SUM.";U 633 QX$="SEARCH":GOSUB2410:IFA$<>"Y"THENRETURN 640 PRINT"[147]SEARCHING FOR[146] ";R$;"ON REC #:MATCHES FOUND:" 650 T=0:F=0:FORS=1TOB-1:PRINT"";S;"SUMMATION:" 660 IFLEN(F$(F1,S))<1ORLEN(F$(F1,S))3THEN RETURN 760 GOTO700 770 F=F+1:IFF3(F-1)=STHENF=F-1:RETURN 780 F3(F)=S:PRINT"";F:IFU>NTHENGOSUB510:RETURN 790 T=T+VAL(F$(U,S)):PRINT" " 800 PRINT"";T:GOSUB510:RETURN 810 IFY<>1THENRETURN 820 IFC6=1THENPRINT"[147]":GOTO920 830 GOSUB2320:PT$="SAVE TO[146] ":GOSUB3030 840 QX$="SAVE ":GOSUB2410:IFA$<>"Y"THENRETURN 850 IFSV$="D"THENOPEN6,8,3,"@0:"+C$+",S,W":PRINT#6,C$;CHR$(13); 860 IFSV$="T"THENOPEN6,1,1,C$:PRINT#6,C$;CHR$(13); 870 PRINT"[147]SAVING ";C$:PRINT#6,N+1;CHR$(13);:IFC=5ORC=3THENPRINT#6,B;CHR$(13); 880 IFC=9THENPRINT#6,F+1;CHR$(13); 890 FORA=0TON:IFFF$(A)=""THENPRINT#6,".";CHR$(13); 900 IFFF$(A)<>""THENPRINT#6,FF$(A);CHR$(13); 910 NEXTA 920 IFC=5THENGOSUB1740:RETURN 930 IFC=3THENRETURN 940 FORD=1TOF:PRINT"RECS SAVED";D 950 FORA=0TON:IFF$(A,F3(D))=""THENPRINT#6,".";CHR$(13); 960 IFF$(A,F3(D))<>""THENPRINT#6,F$(A,F3(D));CHR$(13); 970 NEXTA,D:C6=1:PRINTWQ$:GOSUB2420:IFA$="Y"THENC7=6 980 IFA$="Y"THENGOSUB2500:RETURN 990 RETURN 1000 FORD=1TOF:IFSV$="Y"THENPRINT#4,F3(D); 1010 FORA=P3TOP4:PRINT#4,CHR$(16)P$(A)F$(A,F3(D));:NEXTA:PRINT#4 1020 IFLU$="Y"THENFORX=1TOTT:PRINT#4,CHR$(99);:NEXTX:PRINT#4 1030 IFUL$="Y"THENFORX=1TO80:PRINT#4,CHR$(99);:NEXTX:PRINT#4 1040 IFI$="D"THENPRINT#4,CHR$(10); 1050 GETA$:IFA$="[133]"THENFORD=1TO1:NEXTD:GOTO1070 1060 NEXTD:PRINT#4,CHR$(10);:IFU<=NTHENPRINT#4,"TOTAL"CHR$(16)P$(U)T 1070 PRINT#4:PRINT#4:C4=1:PRINTWQ$:GOSUB2420:IFA$="Y"THENC7=4:GOSUB2490 1080 RETURN 1090 IFB=>KL-1THENGOSUB2560:RETURN 1100 PRINTX$:B=B+1:FORDD=BTOD+1STEP-1:REM INSERT 1110 FORA=0TON:F$(A,DD)=F$(A,DD-1):NEXTA:NEXTDD:GOTO1150 1120 IFD=BTHEN1150:REM DELETE 1130 PRINTX$:FORDD=DTOB-1:FORA=0TON:F$(A,DD)=F$(A,DD+1):NEXTA:NEXTDD 1140 GOSUB510:B=B-1:RETURN 1150 IFD>=BANDU$="REPLACE[146]"THENPRINT"CAN'T ";U$;" IT":RETURN 1160 GOSUB510:PRINT"ENTER NEW REC[146]";D;" [146]" 1170 FORA=0TON:PRINT""FF$(A);"[146]";:INPUTF$(A,D):NEXTA:GOSUB510:RETURN 1180 D=1:ZX=1:IF Y<>1THENRETURN 1190 PRINT"[147]" 1191 PRINT"F1[146] ABORT R[146] REPLACE D[146] DELETE I[146] INSERT G[146] GOTO"; 1200 PRINT" C[146] COPY P[146] PREVIOUS M[146] MOVE S[146] SEARCH"; 1202 PRINT" X[146] CONFIG H[146] HELP" 1205 IFA$="H"THEN1240 1210 IFX1=2ANDD>1THENPRINT"[147]" 1211 PRINT" " 1212 PRINT" " 1213 PRINT" [145][145][145]":PRINT 1214 PRINTM1$;D;M2$:PRINT 1220 FORA=0TON:PRINT"";FF$(A);": [146]";:PRINTF$(A,D):NEXTA 1230 IFZX=0THENR=1:ZX=1:RETURN 1240 GETA$:IFA$=""THEN1240 1250 V$=A$ 1260 IFA$="R"THENU$="REPLACE[146]":GOSUB1620 1270 IFA$="[133]"THENGOSUB2520:A=0:RETURN 1280 IFA$="D"THENU$="DELETE[146]":GOSUB1620 1290 IFA$="I"THENU$="INSERT AS[146]":GOSUB1620 1300 IFA$="M"THENU$="MOVE[146]":GOSUB1620 1310 IFA$="G"THENGOSUB1380 1320 IFA$="S"THENGOSUB3290 1330 IFA$="C"THENU$="COPY[146]":GOSUB1620 1335 IFA$="X"THENGOSUB4500:GOTO1210 1337 IFA$="H"THEN1191 1340 IFA$="P"ANDD>1THEND=D-1:PRINT"[147]":GOTO1210 1350 IFR=1THENR=0:GOTO1210 1360 IFD>=BTHEN1240 1370 D=D+1:GOTO1210 1380 INPUT" GOTO WHERE[146]";D:R=1:IFC=4ANDD>BTHEND=B 1390 IFZX=0ANDD>BTHEND=B 1400 PRINT"[147]":RETURN 1410 IFY<>1THENRETURN 1420 IFC4=1THENPRINT"[147]":GOTO1540 1430 GOSUB2320:PRINT"NAME FOR LIST[146]":INPUTC$:INPUT"SPACING S[146] OR D[146]";I$ 1440 IFC=8THENINPUT"FROM REC #";P1:INPUT"TO REC #";P2:IFP2>BTHENP2=B 1450 INPUT"PRINT REC#'S (Y/N)";SV$:GOSUB2570 1460 INPUT"FULL UNDERLINE[160](Y/N)";UL$:PRINT"SHORT UNDERLINE (Y/N)":INPUTLU$ 1470 PRINT"ENTER 01-80 OR RETURN[146]":FORA=P3TOP4:PRINT"FIELD";A;"AT"; 1480 INPUTP$(A):NEXTA 1490 QX$="PRINT":GOSUB2410:IFA$<>"Y"ANDC=9THENPRINT"[147]":RETURN 1500 IFA$<>"Y"THENRETURN 1510 OPEN4,4:PRINT#4,C$:PRINT#4 1520 FORA=P3TOP4:PRINT#4,CHR$(16)P$(A)FF$(A);:NEXTA:PRINT#4,CHR$(13) 1530 IFUL$="Y"THENFORX=1TO80:PRINT#4,CHR$(99);:NEXTX:PRINT#4 1540 PRINT" F1[146] ABORTS PRINTOUT":IFC=9THEN1000 1550 FORD=P1TOP2:IFSV$="Y"THENPRINT#4,D; 1560 FORA=P3TOP4:PRINT#4,CHR$(16)P$(A)F$(A,D);:NEXTA:PRINT#4 1570 IFLU$="Y"THENFORX=1TOTT:PRINT#4,CHR$(99);:NEXTX:PRINT#4 1580 IFUL$="Y"THENFORX=1TO80:PRINT#4,CHR$(99);:NEXTX:PRINT#4 1590 IFI$="D"THENPRINT#4,CHR$(10); 1600 GETA$:IFA$="[133]"THENFORD=1TO1 1610 NEXTD:PRINT#4:C4=1:RETURN 1620 V$=A$:A$=STR$(D) 1630 PRINTU$;" WHAT RECORD (N[146] TO ABORT)":INPUTA$ 1640 IFVAL(A$)<1THENA$=V$:RETURN 1650 D=VAL(A$):IFD>BTHEND=B 1660 IFV$="I"THEN1680 1670 IFD>B-1THENPRINT" MAXIMUM=[146]";B-1;" [146]":GOTO1630 1680 R=1:IFV$="D"THENGOSUB1120 1690 IFV$="M"THENPRINTX$:GOSUB2270 1700 IFV$="R"THENGOSUB1150 1710 IFV$="I"THENGOSUB1090 1720 IFV$="C"THENGOSUB2140 1730 A$=V$:RETURN 1740 FORD=1TOB-1:PRINT"RECS SAVED";D:FORA=0TON 1750 IFF$(A,D)=""THENPRINT#6,".";CHR$(13); 1760 IFF$(A,D)<>""THENPRINT#6,F$(A,D);CHR$(13); 1770 NEXTA:NEXTD:C6=1 1780 PRINTWQ$:GOSUB2420:IFA$="Y"THENC7=6:GOSUB2500 1790 RETURN 1800 PRINT"[147]";:PT$="LOAD FROM[146] ":GOSUB3030:QX$="LOAD":GOSUB2410:IFA$<>"Y"THENRETURN 1810 PRINT"[147]OPENING FILE[146]":IFSV$="T"THENOPEN1,1,0,C$ 1820 IFSV$="D"THENOPEN1,8,2,C$+",S,R" 1830 INPUT#1,C$,NN,D:GOSUB2330:GOSUB2350:C1=1 1840 IFNN-1NTHENPRINT"FIELDS IN FILE > FIELDS IN MEMORY FILE[146]" 1860 IFB+D>KLORNN-1>LKTHENPRINT"EXCEEDS CURRENT ARRAY OF ";KL-1;" X ";LK+1 1870 IFB+D>KLORNN-1>LKTHENFORA=1TO15:GOSUB510:NEXT:C1=0:CLOSE1:RETURN 1880 D=1:NN=NN-1:PRINT"FILE:[146] ";C$:PRINT"FIELDS ARE:[146]" 1882 FOR A=0TONN:INPUT#1,J$(A):PRINTJ$(A):NEXTA:PRINT"" 1890 W=0:PRINT" Y[146]-LOAD F1[146]-ABORT" 1900 PRINT"NOTE: LOAD WILL USE FIELD NAMES OF INCOMING FILE" 1910 GETA$:IFA$=""THEN1910 1920 PRINT"[147]":IFA$<>"Y"THENC1=0:CLOSE1:RETURN 1930 :N=NN:FORA=0TON:FF$(A)=J$(A):NEXTA 1940 PRINT"RECORDS READ[146]";D 1950 FORA=0TON:F$(A,B)="":INPUT#1,F$(A,B):IFLEFT$(F$(A,B),3)="@@@"THENA=N:W=1 1960 NEXTA:IFW=1THEN1980 1970 D=D+1:B=B+1:GOTO1940 1980 CLOSE1:Y=1:A=0:C1=0:RETURN 1990 PRINT"[147]STAND BY..":X=FRE(9):PRINT" BYTES FREE=";X 2000 QX$="[157][157][157][157] ":GOSUB2410:RETURN 2010 PRINT"[147]ENTER GOTO180[146] AND PRESS RETURN TO RETAINCURRENT FILE IN MEMORY" 2012 PRINT"IF YOU WISH TO ERASE CURRENT FILE IN" 2013 PRINT"MEMORY, ENTER RUN[146] AND PRESS RETURN.":PRINT 2014 PRINT"BUT...BE SURE YOU HAVE CLOSED[146] ALL" 2015 PRINT "OPEN FILES FIRST. TO DO THIS, ENTER" 2016 PRINT"GOTO 180[146] AND PRESS RETURN AND CHOOSE" 2017 PRINT"MENU ITEM 13[146] TO CLOSE THE OPEN FILES":END 2020 IF Y<>1THENRETURN 2030 GOSUB2320:PRINT"SORT WILL DESTROY THE FILE CURRENTLY IN MEMORY.[146]"; 2032 PRINT" ABORT AT [146]ABORT PROMPT BELOW ANDSAVE FILE FIRST.[146]" 2034 INPUT"SORT WHAT FIELD";Z:IFZ>NTHENGOSUB5000:RETURN 2040 QX$="INDEX ":PT$="SAVE TO[146] ":GOSUB3030:GOSUB840:IFA$<>"Y"THENRETURN 2050 F$(Z,B)="ZZZ":E=1:PRINT"[147]SORTING";B-1;" RECORDS[146]" 2060 I=1:FORJ=2TOB:IFF$(Z,I)KL-1THENGOSUB2560:A$=V$:RETURN 2150 PRINT"[145]":PRINT" SPACE G P F7 TO PLACE)[146]" 2160 GETA$:IFA$=""THEN2160 2170 IFA$="[136]"THEN2220 2180 ZX=0:IFA$="G"THENGOSUB1380 2190 IFA$="P"THENPRINT"[147]":D=D-1:IFD<1THEND=1 2200 IFA$=" "THEND=D+1:IFD>BTHEND=B 2210 ZX=0:GOSUB1210:ZX=1:GOTO2150 2220 PRINT"[145]":PRINTU$;" TO REC# ":INPUTD:PRINTX$:IFD>BTHEND=B 2230 IFA$="M"THENGOTO2300 2240 B=B+1:FORDD=BTOD+1STEP-1:FORA=0TON:F$(A,DD)=F$(A,DD-1):NEXTA:NEXTDD 2250 FORA=0TON:F$(A,D)=CC$(A,1):NEXTA 2260 PRINTU$;" COMPLETE[146]":ZX=1:A$=V$:GOSUB510:RETURN 2270 FORA=0TON:CC$(A,1)=F$(A,D):NEXTA:IFB=>KL-1THENGOSUB2560:A$=V$:RETURN 2280 FORDD=DTOB-1:FORA=0TON:F$(A,DD)=F$(A,DD+1):NEXTA:NEXTDD 2290 B=B-1:GOSUB510:GOTO2150 2300 B=B+1:FORDD=BTOD+1STEP-1:FORA=0TON:F$(A,DD)=F$(A,DD-1):NEXTA:NEXTDD 2310 FORA=0TON:F$(A,D)=CC$(A,1):NEXTA:GOTO2260 2320 PRINT"[147]FIELDS ARE:":FORA=0TON:PRINT"";A;"[146]";FF$(A):NEXTA:IFC=6THENRETURN 2330 IFC=6THENPRINT"";D;"RECS. ";NN;"FIELDS":RETURN 2340 IFC<>6THENPRINT"";B;"RECS. ";N+1;"FIELDS":RETURN 2350 IFY=1THENRETURN 2352 IFC<>1THENGOTO2375 2353 PRINT"[147]PLEASE ENTER THE NUMBER OF FIELDS[146] EACH RECORD WILL HAVE" 2355 INPUT LK:X$="REARRANGING[146][145]" 2360 PRINT"BELOW YOU MUST TELL ME THE APPROX. NO. OF RECORDS[146]"; 2361 PRINT" THE FILE WILL CONTAIN. THE HIGHER THE NUMBER OF FIELDS, THE"; 2363 PRINT" LOWER THE NUMBER OF RECORDS YOU CAN HAVE DUE TO MEMORY "; 2365 PRINT"LIMITATIONS. ASSUMING YOU HAVE 6 FIELDS OR LESS, YOU'LL "; 2366 PRINT"PROBABLY BE ABLE TO ENTER 150 BELOW. IF WHEN YOUR 150TH RECORD"; 2367 PRINT" IS ENTERED THERE APPEARS TO BE ENOUGH MEMORY FOR MORE (CHE"; 2368 PRINT"CK MEMORY WITH MENU ITEM 11), SAVE THE FILE, BREAK FROM THE PROGR"; 2369 PRINT"AM, RE-RUNIT AND LOAD[146] THE FILE, AT WHICH POINT YOUCAN ENTER A"; 2370 PRINT" LARGER NUMBER." 2372 INPUT"HOW MANY RECORDS[146] DO YOU WISH THE FILE TO CONTAIN";KL 2373 GOTO 2380 2375 PRINT"ENTER A GREATER NUMBER THAN THE" 2376 PRINT"CURRENT NO. OF RECORDS IN THIS FILE IF" 2377 PRINT"YOU WISH TO ADD TO IT. OTHERWISE" 2378 PRINT"ENTER THE ABOVE NO.":INPUT"DIMENSION FOR HOW MANY RECORDS";KL 2379 INPUT"ENTER THE NO. OF FIELDS[146] SHOWN ABOVE AND PRESS RETURN";LK 2380 KL=KL+1:LK=LK-1:DIMF$(LK,KL),FF$(LK),F1(KL),F3(KL),S$(LK,1) 2390 DIMCC$(LK,1),U(LK),P$(LK):PRINT"[147]"; 2400 VL=36878:VO=36874:Y=1:B=1:RETURN 2410 PRINT" Y[146] ";QX$;" F1[146] ABORT" 2420 GETA$:IFA$="Y"ORA$="[133]"THENRETURN 2430 GOTO2420 2440 C7=9:PRINT"[147]FILES OPEN ARE:[146]":IFC1THENPRINT" 1[146] TAPE LOAD" 2450 IFC4THENPRINT" 4[146] PRINTER" 2460 IFC6THENPRINT" 6[146] TAPE/DISK SAVE" 2470 PRINT" RETURN[146] TO CLOSE NONE" 2480 INPUT"CLOSE WHICH FILE";C7:IFC7=1THENCLOSE1:C1=0 2490 IFC7=4THENPRINT#4:CLOSE4:C4=0 2500 IFC7=6THENFORA=0TON:PRINT#6,"@@@";CHR$(13);:NEXTA:PRINT#6:CLOSE6:C6=0 2510 RETURN 2520 PRINT"RETURNING TO MENU":FORD=B+1TOKL:FORA=0TON:F$(A,D)="":NEXTA,D:RETURN 2530 IF Y<>1THEN RETURN 2540 GOSUB2320:PRINT"[145]ENTER NEW NAME OR PRESS RETURN[146]":PRINT 2550 FORA=0TON:PRINT"FIELD";A;:INPUTFF$(A):NEXTA:RETURN 2560 PRINT"ARRAY FULL-CAN'T DO[146]":FORA=1TO10:GOSUB510:NEXTA:RETURN 2570 INPUT"FROM FIELD";P3:INPUT"THRU FIELD";P4 2580 INPUT"CALC FIELD LENGTHS";P1$:IFP1$<>"Y"THENRETURN 2590 PRINT"[147]CALCULATING LENGTHS[146]" 2600 FORA=P3TOP4:FORD=1TOB-1:IFLEN(F$(A,D))>U(A)THENU(A)=LEN(F$(A,D)) 2610 NEXTD:PRINT"FD#";A;" IS";U(A):NEXTA 2620 INPUT"CALC PRINT POSITIONS";P1$:IFP1$="Y"THEN2650 2630 PRINT"FIELD LENGTHS ARE:":FORA=P3TOP4:PRINT"FIELD";A;" IS";U(A):NEXTA 2640 PRINT"WRITE THESE DOWN":GOSUB2410:RETURN 2650 U2=0:P$(P3)="01":IFSV$="Y"THENU2=U2+6:P$(P3)="05" 2660 TT=0:IFSV$="Y"THENTT=6 2670 FORA=P3TOP4:TT=TT+U(A)+1:NEXTA:PRINT"LINE LENGTH IS";TT 2680 PRINT"FD#";P3;" AT ";P$(P3) 2690 FORA=P3+1TOP4:U2=U2+U(A-1)+2:P$(A)=STR$(U2) 2700 IFU2<10THENP$(A)="0"+MID$(P$(A),2,2) 2710 IFLEN(P$(A))>2THENP$(A)=MID$(P$(A),2,2) 2720 PRINT"FD#";A;" AT ";P$(A):NEXTA:RETURN 2730 QX$="[157][157][157][157] ":IFUD$<>"Y"THENRETURN 2740 PRINT"[147] S[146]CREEN ONLY P[146]RINTER ALSO F1[146] ABORT" 2750 GETDR$:IFDR$=""THEN2750 2760 IFDR$="[133]"THENRETURN 2770 PRINT"STAND BY...":OPEN1,8,0,"$0":GET#1,A$,B$:IFDR$="P"THENOPEN4,4 2780 PRINT"[145]F1[146]-ABORT ":PRINT"SPACE[146]-START/STOP" 2790 GET#1,A$,B$:GET#1,A$,B$:O=0:IFA$<>""THENO=ASC(A$) 2800 IFB$<>""THENO=O+ASC(B$)*256 2810 PRINT"";MID$(STR$(O),2);TAB(3);"[146]"; 2820 IFDR$="P"THENPRINT#4,MID$(STR$(O),2);CHR$(16)"03"; 2830 GET#1,B$:IFST<>0THEN2930 2840 IFB$<>CHR$(34)THEN2830 2850 GET#1,B$:IFB$<>CHR$(34)THENPRINTB$;:IFDR$="P"THENPRINT#4,B$; 2860 IFB$<>CHR$(34)THEN2850 2870 GET#1,B$:IFB$=CHR$(32)THEN2870 2880 PRINTTAB(18);:K$="" 2890 K$=K$+B$:GET#1,B$:IFB$<>""THEN2890 2900 PRINT""LEFT$(K$,3):IFDR$="P"THENPRINT#4,CHR$(16)"18";LEFT$(K$,3) 2910 GETT$:IFT$<>""THEN2990 2920 IFST=0THEN2790 2930 PRINT" BLOCKS FREE":IFDR$="P"THENPRINT#4,"BLOCKS FREE" 2940 CLOSE1:IFDR$="P"THENPRINT#4:CLOSE4 2950 GOSUB2410:RETURN 2960 QX$="[157][157][157][157] ":PRINT"[147]":IFUD$<>"Y"THENRETURN 2970 GET#15,A$:PRINTA$;:IFA$<>CHR$(13)GOTO2970 2980 PRINT:GOTO2950 2990 IFT$="[133]"THEN2930 3000 GETT$:IFT$="[133]"THEN2930 3010 IFT$=" "THEN2920 3020 GOTO3000 3030 PRINTPT$;"D[146]ISK T[146]APE" 3040 GETSV$:IFSV$=""THEN3040 3050 IFSV$<>"D"ANDSV$<>"T"THEN3040 3060 C$="N":PRINT"ENTER FILE NAME. DISK USERS CAN ENTER " 3062 PRINT"@DIR[146] TO VIEW DIRECTORY":INPUTC$ 3070 IFC$="@DIR"THENGOSUB2730 3080 IFC$="@DIR"THEN3060 3090 RETURN 3100 IFY<>1THENRETURN 3110 GOSUB2320:X$=CHR$(13):C$="N":INPUT"INDEX[146] WHICH FIELD";U 3112 IFU>NTHENGOSUB5000:RETURN 3120 PRINT"TO 1[146] SCREEN 2[146] TAPE 3[146] DISK 4[146] PRINTER":INPUTGH 3130 INPUT"NAME FOR INDEX";LD$:IFLD$="@DIR"THENGOSUB2730:GOTO3130 3140 C$=LD$:QX$="INDEX":GOSUB2410:IFA$<>"Y"THENRETURN 3150 IF C6=1THENPRINT"CAN'T DO - FILE OPEN[146]":FORA=1TO6:GOSUB510:NEXTA:RETURN 3160 IFGH=2THENOPEN6,1,1,C$:PRINT#6,C$;X$;1;X$;B;X$;FF$(U);X$; 3170 IFGH=3THENOPEN6,8,5,"@0:"+C$+",S,W":PRINT#6,C$;X$;1;X$;B;X$;FF$(U);X$; 3180 PRINT"[147]";F$(U,1):IFGH=4THENOPEN4,4:PRINT#4,C$:PRINT#4:PRINT#4,F$(U,1) 3190 IFGH=2ORGH=3THENPRINT#6,F$(U,1);X$; 3200 FORD=2TOB-1:FORA=1TOD-1:IFF$(U,D)=F$(U,A)THEN3240 3210 NEXTA:GETA$:IFA$<>""THENA=D-1:D=B-1:PRINT"ABORTED - PRESS F1[146]":GOTO3260 3220 PRINTF$(U,D):IFGH=4THENPRINT#4,F$(U,D) 3230 IFGH=2ORGH=3THENPRINT#6,F$(U,D);X$; 3240 NEXTD 3250 PRINT"COMPLETED - PRESS F1[146]" 3260 IFGH=4THENPRINT#4:CLOSE4 3270 IFGH=2ORGH=3THENPRINT#6,"@@@";X$:CLOSE6 3280 GOSUB2420:RETURN 3290 GOSUB2320:INPUT"SEARCH FOR (@@@[146] ABORT) ";R$ 3300 IF R$="@@@"THEN PRINT"[147]":D=D-1:RETURN 3310 INPUT"SEARCH ON FIELD";F1:IFF1>NTHENGOSUB5000:GOTO3310 3320 PRINT"[147]SEARCHING FOR ";R$ 3330 IF D=>B-1THEN3400 3340 FOR S=D+1TOB-1 3350 IFLEN(F$(F1,S))<1ORLEN(F$(F1,S))1THENPRINT"[147]" 3421 PRINT" " 3422 PRINT" " 3423 PRINT" [145][145][145]":PRINT 3424 PRINTM1$;F3(D);M4$:PRINT 3430 FOR A=0TON:PRINT"";FF$(A);": [146]";F$(A,F3(D)):NEXTA 3440 IFD=FTHENPRINT" " 3442 IFD=FTHENPRINT"NO. FOUND: ";F;" SUMMATION: ";T 3444 IFD=FTHENPRINT" " 3450 GETA$:IFA$=""THEN3450 3460 IFA$="[133]"THENPRINT"[147]":RETURN 3465 IFA$="X"THENGOSUB4500:GOTO3420 3467 IFA$="H"THEN3411 3470 IFA$="P"AND D>1THEND=D-1:PRINT"[147]":GOTO3420 3480 IFA$="G"THENPRINT"GOTO WHERE[146]":INPUTD:IFD>FTHEND=F:PRINT"[147]":GOTO3420 3490 IF A$="G"THENPRINT"[147]":GOTO3420 3500 IFD>FTHEN3450 3510 D=D+1:GOTO3420 3520 PRINT"[147] COLOR CHANGE":PRINT"PRESS:":PRINT" F1[146] - EXIT" 3530 PRINT" F3[146] - BACKGROUND" 3540 PRINT" F4[146] - BOARDER":PRINT" F5[146] - CHARACTER" 3550 C7=PEEK(53281):C8=PEEK(53280):C9=PEEK(646) 3560 GET CL$:IFCL$=""THEN3560 3570 IFCL$="[134]"THENC7=C7+1:IFC7>15THENC7=0 3580 IFCL$="[134]"THENPOKE53281,C7:GOTO3560 3590 IFCL$="[138]"THENC8=C8+1:IFC8>15THENC8=0 3600 IFCL$="[138]"THENPOKE53280,C8:GOTO3560 3610 IFCL$="[135]"THENC9=C9+1:IFC9>15THENC9=0 3620 IFCL$="[135]"THENPOKE646,C9:GOTO3520 3630 IFCL$="[133]"THENRETURN 3640 GOTO3560 3650 PRINT"[147] SEND DISK COMMAND[146]" 3660 PRINT"SAMPLE SYNTAX (USE QUOTES AT START AND END)" 3670 PRINT"SCRATCH FILE[146] S0:FILENAME" 3680 PRINT"RENAME FILE[146] R0:NEWNAME=OLDNAME" 3690 PRINT"DUP A FILE[146] C0:NEWFILE=0:OLDFILE" 3700 PRINT"INITIALIZE DRIVE[146] I" 3710 PRINT"VALIDATE DISK[146] V" 3715 PRINT"FORMAT NEW DISK[146] N0:DISKNAME,ID" 3720 PRINT"ENTER STRING TO SEND (BEGIN AND END WITH DOUBLE QUOTE)" 3722 PRINT"OR PRESS RETURN[146] TO RETURN TO MENU" 3730 FM$="X":INPUT FM$ 3740 IF LEFT$(FM$,1)="S"THEN3800 3750 IF LEFT$(FM$,1)="R"THEN3840 3760 IF LEFT$(FM$,1)="C"THEN3870 3770 IF LEFT$(FM$,1)="I"THEN PRINT#15,"I":RETURN 3780 IF LEFT$(FM$,1)="V"THEN3910 3785 IF LEFT$(FM$,1)="X"THEN RETURN 3787 IF LEFT$(FM$,1)="N"THEN3950 3790 PRINT"INVALID - ABORTED[146]":FORT=1TO1000:NEXT:RETURN 3800 QX$="SCRATCH":PRINT"[147]SCRATCH THIS FILE":PRINTFM$:PRINT"" 3810 GOSUB2410 3820 IFA$<>"Y"THEN RETURN 3830 PRINT"SCRATCHING FILE":PRINT#15,FM$:GOSUB3940:GOSUB2960:RETURN 3840 QX$="RENAME":PRINT"[147]RENAME A FILE":PRINTFM$:PRINT"":GOSUB2410 3850 IFA$<>"Y"THENRETURN 3860 PRINT"RENAMING THE FILE":PRINT#15,FM$:GOTO3940 3870 QX$="DUPLICATE":PRINT"[147]DUPLICATE A FILE[146]":PRINTFM$:PRINT"" 3880 GOSUB2410 3890 IFA$<>"Y"THEN RETURN 3900 PRINT"DUPLICATING FILE":PRINT#15,FM$:GOTO3940 3910 QX$="VALIDATE":PRINT"[147]VALIDATE DISK[146]":GOSUB2410 3920 IFA$<>"Y"THENRETURN 3930 PRINT"VALIDATING DISK":PRINT#15,FM$:GOTO3940 3940 FORT=1 TO 2500:NEXT T:RETURN 3950 QX$="BEGIN FORMAT":PRINT"[147]CAUTION[146]: ERASES DISK ... PUT BLANK DISK "; 3951 PRINT"IN DRIVE NOW!!!" 3952 PRINT"FORMAT DISK NOW AS ";FM$:PRINT 3953 GOSUB2410:IFA$<>"Y"THEN RETURN 3955 PRINT"FORMATTING DISK":PRINT#15,FM$:GOSUB3940:GOSUB2960:RETURN 4000 PRINT" " 4001 PRINT" " 4002 PRINT" [145][145][145]":PRINT 4003 RETURN 4500 PRINT"[147]SYSTEM CONFIGURATION" 4505 PRINT" 1[146] - DISPLAY FORMAT":PRINT" 2[146] - RECORD INPUT DEFAULT" 4518 N1=0:INPUT"CHANGE WHICH CONFIGURATION ABOVE";N1:IFN1=0THENRETURN 4520 IFN1=1THEN4605 4522 GOTO4650 4605 PRINT"[147]RECORD DISPLAY FORMAT:[146] 4607 [153]"ENTER  1 WAIT FOR SCROLLING DISPLAY." 4608 [153]"  2 WAIT FOR 1 RECORD PER SCREEN." 4612 [153]"CURRENT DISPLAY FORMAT IS:":[139]X1[178]1[167][153]" SCROLLINGWAIT" 4614 [139]X1[178]2[167][153]" 1 PER SCREENWAIT" 4618 [133]X1:[153]"LOAD";:[142] 4650 [153]"LOADRECORD INPUT DEFAULT:" 4655 [153]"ENTER  1 WAIT IF YOU WISH TO BE ABLE TO" 4658 [153]"JUST PRESS RETURN ON A FIELD WHEN YOU" 4662 [153]"ARE ENTERING RECORDS WITH  CREATE WAIT OR" 4665 [153]" ADD RECORDS WAIT ROUTINES TO MAKE THE" 4668 [153]"FIELD THE SAME AS THAT FIELD IN THE" 4670 [153]"PREVIOUS RECORD." 4675 [153]"ENTER  2 WAIT IF YOU WISH TO PRESS RETURN" 4678 [153]"AND LEAVE THAT FIELD BLANK. (NOTE THAT THE PROGRAM PUTS A PERIOD "; 4679 [153]" IN A BLANK FIELD.)" 4685 [153]"CURRENT ENTRY DEFAULT IS: ";:[139]X2[178]1[167][153]"COPY PREVIOUS FIELDWAIT" 4688 [139] X2[178]2[167][153]"FIELD BLANKWAIT" 4690 [133]"ENTER THE ENTRY DEFAULT YOU WISH";X2:[142] 4700 [153]"LOAD * * * H E L P * * *":[153]"FOR COMPLETE INSTRUCTION YOU SHOULD" 4705 [153]"READ THE FILE CALLED DBASE64.INSTRWAIT." 4710 [153]"USING A SEQUENTIAL FILE READER-" 4715 [153]"PRINTER." 4785 [153]"AUTHORWAIT: DICK JACOBS - BALLSTON SPA, NY" 4797 [153]"PRESS ANY KEY TO RETURN" 4798 [161]A$:[139]A$[178]""[167]4798 4799 [142] 5000 [153]"NO SUCH FIELD - MAX. = WAIT";N:[129]A[178]1[164]12:[141]510:[130]A:[142] 0